이전 글목록 보기다음 글
expo2026-08-19T02:02:15.805Z

Expo Go + EAS Build

Anya2_Forger profileAnya2_Forger

네. Expo Go + EAS Build를 이용해서 iOS 앱을 빌드하는 경우에는 Mac이 반드시 필요한 것은 아닙니다. 핵심은 EAS의 클라우드 Mac에서 iOS 빌드를 수행한다는 점입니다. Expo 공식 문서에서도 EAS iOS 빌드는 Expo의 macOS 클라우드 러너에서 수행된다고 설명합니다. (Expo Documentation)

1. 기본 환경

항목

필요 여부

설명

Expo 프로젝트

React Native/Expo 프로젝트

Node.js LTS

개발 PC에 필요

Expo CLI

npx expo 사용

EAS CLI

eas-cli 설치

Expo 계정

EAS Build 사용

Apple Developer Program

✅*

실제 iOS 기기용/배포용 빌드

iPhone

빌드 자체에는 불필요

Mac

EAS 클라우드 빌드라면 불필요

Xcode

EAS 클라우드 빌드에서는 개발 PC에 불필요

CocoaPods

클라우드 빌드에서는 불필요

Apple 인증서

EAS가 관리 가능

Distribution Certificate / Provisioning Profile

* iOS 실제 기기용 배포 빌드 또는 TestFlight/App Store 배포를 하려면 Apple Developer 계정이 필요합니다. Expo 공식 문서도 production iOS build의 prerequisite로 Apple Developer account를 명시하고 있습니다. (Expo Documentation)


2. 개발 PC가 Windows/Linux여도 가능

예를 들어 현재 Ubuntu나 Windows PC에서 개발하고 있다면:

npm install -g eas-cli

eas login

eas build:configure

eas build --platform ios

이렇게 하면 프로젝트가 EAS 서버로 올라가고 Expo의 macOS 빌드 환경에서 iOS 앱을 컴파일합니다. (Expo Documentation)

즉,

Windows/Linux PC → EAS Cloud → macOS + Xcode → iOS 빌드

구조입니다.


3. Expo Go와 EAS Build는 역할이 다릅니다

이 부분이 중요합니다.

Expo Go

개발 중에:

npx expo start

하고 iPhone의 Expo Go 앱으로 QR을 찍어서 실행합니다.

따라서 초기 개발 단계에서는:

PC + iPhone + Expo Go

만으로 상당 부분 개발할 수 있습니다.

Expo 공식 문서도 Expo Go를 실제 Android/iOS 기기에서 사용하는 개발 환경으로 설명합니다. (Expo Documentation)

EAS Build

실제 iOS 앱을 .ipa 형태로 빌드하거나 TestFlight/App Store에 올릴 때 사용합니다.

eas build --platform ios

EAS가 클라우드에서 iOS 앱을 빌드합니다. (Expo Documentation)


4. Apple Developer 계정은 필요

여기가 가장 중요한 부분입니다.

EAS가 iOS 빌드를 해준다고 해서 Apple Developer 계정이 필요 없는 것은 아닙니다.

iOS 앱을 실제 기기에 설치하거나 TestFlight/App Store에 배포하려면 Apple의 서명 체계가 필요합니다.

주요 인증서는:

  • Distribution Certificate

  • Provisioning Profile

  • Push Notification Key

등입니다. EAS는 이러한 인증서를 자동으로 관리할 수 있습니다. (Expo Documentation)

따라서 일반적인 구성은:

Apple Developer Program
        ↓
     EAS CLI
        ↓
Apple 인증서/Provisioning Profile
        ↓
EAS macOS Cloud
        ↓
      iOS 앱

입니다.


5. 실제로 필요한 것은 이것

현재 개발하시는 Expo 모바일 앱을 기준으로 보면 다음 정도면 됩니다.

개발 단계

① Node.js LTS
② Expo 프로젝트
③ Expo Go
④ iPhone
⑤ Expo 계정

iOS EAS Build 단계

① 위 개발 환경
② eas-cli
③ Apple Developer Program
④ EAS Build

설치는:

npm install -g eas-cli

그리고:

eas login

프로젝트에서:

eas build:configure

그 다음:

eas build --platform ios

하면 됩니다. Expo의 기본 eas.json에는 일반적으로 development, preview, production 빌드 프로파일이 구성됩니다. (Expo Documentation)


6. 그런데 Expo Go에서 개발하다가 EAS로 넘어갈 때 주의할 점

Expo Go에서 작동한다고 해서 모든 라이브러리가 Expo Go에서도 작동하는 것은 아닙니다.

예를 들어 앱에 다음과 같은 native module이 들어가면 Expo Go만으로는 부족할 수 있습니다.

Expo Go
   ↓
Expo SDK에서 제공하는 기능
   ↓
문제 없음

반면:

Expo Go
   ↓
커스텀 Native Module
   ↓
❌ Expo Go에서 실행 불가

이 경우에는 Development Build를 만들어야 합니다.

Expo 공식 문서에서는 Development Build를 "프로젝트에 맞게 커스터마이즈한 Expo Go"와 비슷한 개념으로 설명합니다. (Expo Documentation)

예:

npx expo install expo-dev-client

eas build --platform ios --profile development

그러면

내 앱
+ expo-dev-client
+ 필요한 native module
= 나만의 Expo 개발 앱

을 만들 수 있습니다.


7. 가장 추천하는 개발 구조

현재처럼 Expo + React Native로 모바일 앱을 개발하면서 iOS/Android 모두 지원하려는 경우라면 저는 다음 구조를 추천합니다.

                 ┌── Android
                 │
Expo 프로젝트 ───┤
                 │
                 └── iOS
                       │
                       ▼
                    EAS Build
                       │
             ┌─────────┴─────────┐
             ▼                   ▼
       Android Cloud          macOS Cloud
                               (Xcode)
                                  │
                                  ▼
                              iOS Build

개발 중에는:

PC
 │
 ├─ VS Code
 ├─ Expo
 └─ npx expo start
          │
          ▼
       iPhone
       Expo Go

그리고 테스트 단계에서는:

EAS Build
    ↓
Development Build
    ↓
iPhone

최종 배포는:

EAS Build
    ↓
Production iOS Build
    ↓
App Store Connect
    ↓
TestFlight
    ↓
App Store

이 방식이면 Mac을 별도로 구입하지 않아도 iOS 앱 개발 및 EAS 빌드가 가능합니다. EAS의 iOS 빌드 서버 자체가 macOS/Xcode 환경을 제공하기 때문입니다. (Expo Documentation)

참고로 EAS Cloud Build와 eas build --local은 완전히 다릅니다. --local로 iOS를 직접 빌드하려면 Mac/Linux 환경과 iOS 빌드 도구가 필요하고, Windows는 공식 지원되지 않습니다. (Expo Documentation)

원하시면 다음 단계로 "Expo Go → EAS Development Build → TestFlight → App Store 배포"까지 현재 사용 중인 Expo 프로젝트 기준으로 필요한 명령어와 eas.json, Apple Developer 설정을 순서대로 정리해드릴 수 있습니다.

Comments

Log in to comment

Loading comments...
이전 글목록 보기다음 글

당신의 이야기를 기다리고 있습니다